#pragma once

// 运行修改的参数
// L1M0 * L1N0 最大只能是256*128
#define L1M0 128
#define L1N0 256
#define L1K0 256

#define WORKSPACENUM 2

//910B1-910B4硬件相关参数
static constexpr int64_t L1_BYTES = 512 * 1024;
static constexpr int64_t L0AB_BYTES = 64 * 1024;
static constexpr int64_t L0C_BYTES = 128 * 1024;
static constexpr int64_t UB_BYTES = 192 * 1024;

// constexpr int64_t L1_SIZE  = L1_BYTES / sizeof (half);
// constexpr int64_t L0AB_SIZE = L0AB_BYTES / sizeof(half);
// constexpr int64_t L0C_SIZE = L0C_BYTES / sizeof(half);
// constexpr int64_t UB_SIZE = UB_BYTES / sizeof(half);

//双缓冲相关参数
//无

//Mmad所需基块相关参数
constexpr int64_t DATABLOCK_BYTES = AscendC::GetDataBlockSizeInBytes();
constexpr int64_t DATABLOCK_SIZE = DATABLOCK_BYTES / sizeof(half);
constexpr int64_t L1L0_BASEBLOCK_M0 = 16;
constexpr int64_t L1L0_BASEBLOCK_N0 = 16;
constexpr int64_t L1L0_BASEBLOCK_K0 = 32 / sizeof(half);
constexpr int64_t L1L0_BASEBLOCK_BYTES = 512;
constexpr int64_t L1L0_BASEBLOCK_SIZE = L1L0_BASEBLOCK_BYTES / sizeof(half);


// Ascend C API 相关
constexpr uint64_t STRIDE_LIMIT = 65536;
constexpr uint64_t MAX_AICORE_NUM = 20;

